package com.cqrt.service;

import com.alibaba.fastjson.JSONObject;
import com.cqrt.dto.TaskMessageDTO;
import com.cqrt.dto.TemplateDTO;
import com.cqrt.vo.ProjectManagerVO;
import com.hustcad.plm.pdm.core.base.EntityBase;
import com.hustcad.plm.rpm.model.dto.active.ImportActiveDTO;
import com.hustcad.plm.rpm.model.dto.active.ImportChildActiveDTO;
import com.hustcad.plm.rpm.model.dto.active.PlusTaskDTO;
import com.hustcad.plm.rpm.model.dto.calendar.TyppmCalendarDTO;
import com.hustcad.plm.rpm.model.dto.library.LibNodeTreeDTO;
import com.hustcad.plm.rpm.model.dto.message.ObjectMsgTempLinkDTO;
import com.hustcad.plm.rpm.model.vo.calendar.CalendarExceptionDayVO;
import com.hustcad.plm.rpm.model.vo.project.ProjectTemplateVO;
import com.ty.basic.response.ResponseResult;

import java.util.List;
import java.util.Map;

public interface RTProjectTemplateService {
    Map<String, Map<String, String>> getAttr(List<String> enumDefs);

    LibNodeTreeDTO getChildrenByParent(String key);

    List<PlusTaskDTO> batchImportChildPlanActiveByPlanTemplatePlus(List<ImportChildActiveDTO> importActiveDTOs);

    void batchUpdateCalendarExceptionDayList(List<String> projectList, String projectOid);

    void updateTemplateStatus(String projectId, String status);

    List<EntityBase> getChildrenByParentPlus(TemplateDTO templateDTO);

    List<TyppmCalendarDTO>  batchUpdateCalendarDTOList(List<String> projectList, String projectOid);

    void batchCreateObjectMessageLink(List<ObjectMsgTempLinkDTO> requestParams,String planOID);

    void batchUpdateMessageTemplateDefine(List<ObjectMsgTempLinkDTO> requestParams, String planOID);

    void batchDeleteObjectMessageLinkList(List<String> requestParams, String planOID);

    void batchOperationObjectMessageLinkList(TaskMessageDTO taskMessageDTO);

    List<EntityBase> getTemplateChildrenByParentPlus(TemplateDTO templateDTO);

    List<EntityBase> getPlanChildrenByParentPlus(TemplateDTO templateDTO);

    LibNodeTreeDTO getAllChildrenByParentPlus(TemplateDTO templateDTO);

    List<PlusTaskDTO> batchImportPlanActiveByPlanTemplatePlus(ImportActiveDTO importActiveDTO);

    JSONObject querySimilarTemplate(String oid);

    //ProjectTemplateVO selectTemplateValueByOId(String templateOid);

    void batchReplaceProjectManger(JSONObject params);

    List<ProjectManagerVO> selectProjectByManger(JSONObject params);

    void batchDeleteProjectManger(JSONObject params);

    void batchReplaceJobExecutor(JSONObject params);
    void batchReplaceJobExecutorEX(JSONObject params);

    List<ProjectManagerVO> selectProjectByMember(String member, String projectName, String projectNumber,String thisYear);

    List<PlusTaskDTO> batchImportPlansActiveByPlanTemplatePlus(List<ImportChildActiveDTO> importActiveDTOs);

}
